Over the last several years, personal computing devices have transformed from relatively high-cost, low-function machines to relatively inexpensive machines that can perform a plurality of tasks including but not limited to financial management tasks, Internet browsing, word processing, complex calculations, etc. This evolution of personal computers has been based at least in part upon advances in hardware, including but not limited to an increase in a number of transistors included in processors, an increase in memory space, an increase in hard drive space, amongst other hardware advances.
To efficiently use this hardware on personal computers, complex operating systems have been developed. For instance, an operating system may include several millions of lines of code. Furthermore, robust applications that can perform a plurality of tasks, ranging from relatively simple to relatively complex, have been developed to execute on one or more different types of operating systems. Similar to an operating system, an application may include a large number of lines of code.
Oftentimes, especially in connection with large or complex operating systems or applications, source code pertaining to an application will compile without any errors being detected. In some cases, however, the resulting compiled applications will not execute according to specifications or as expected by a developer or user.
Typically, an application or operating system is tested prior to such application or operating system being released to the public. Due to size and incredible amount of functionality that is associated with conventional applications and operating systems, it can be nearly impossible for testers to exhaustively test an operating system or application prior to release. After an application is released to the public, one or more users may report errors in how the application operates in certain situations or with certain types of hardware. The developer or developers of the application then generate a patch that corrects such problem and then transmits such patch to end users, for instance, via the Internet. Generating patches for released software tends to be relatively expensive for the developer of the software. For example, a single patch may cost a developer hundreds of thousands of dollars to generate and transmit to end users.